import {fetchNewsListReq,} from "../apis/goApis";
import {handleResp} from "../utils/commonfunc";

// const newsInterface = {
//     id: -1,
//     Title: '',
//     CommentsTotal: '',
//     Thumb: '',
//     PublishedAt: '',
// }

// title: "巴萨新帅：梅西让我享受足球 很意外巴萨邀请我"
// detailPag: (8) ["　　基科·塞蒂恩体会到了美梦成真的感觉，在24小时内，从失业到成为了巴萨主帅。在巴萨俱乐部为他举办的…的球队。你永远没法超越这一点，因为已经达到了极限。不用5分钟我就接受了这一选项，这是自然而然的。”", "　　塞蒂恩在巴萨主席巴托梅乌以及俱乐部技术总监阿比达尔的陪伴下出席新闻发布会。他表示：“我现在还不是非常清楚目前的情况意味着什么，哪怕最好的梦想也无法做这样的想象。”", "　　塞蒂恩表示自己的首要任务就是将热情传递给球队：“我想要把热情和斗志以及我现在的信心传给球队。对我…正常情况，不过我已经和球员谈过了，我们的想法就是保持高要求和高强度，以免像过去那样丢掉一些胜利。”", "　　对于自己的阵型，塞蒂恩并不想给出具体答案，“相比阵型，更重要的是足球哲学，我们可能会对4-3-3或4-4-2阵型做一些改变。”他也不愿意谈冬季引援的可能性，“我们还需要评估很多的事情。”", "　　对于自己的风格，塞蒂恩表示：“我到一支球队，只能保证一件事情：我的球队踢得好。在拉斯帕尔马斯、贝…队踢得不错，有特点，有变化，当然在巴萨这么说有点怪怪的，因为巴萨一直踢得很好，对马竞就踢得很好。”", "　　塞蒂恩表示：“在获得邀请时我非常惊讶，我看过报纸，预感可能会发生什么，但从未想到过巴萨会请我。我没有很好的履历，也没有夺冠过，我只是展示了自己喜欢的足球哲学。我唯一做的就是我的球队踢出好足球。”", "　　谈到青训营的策略，塞蒂恩表示：“我肯定会呵护年轻球员，必须要去了解他们能不能在一队踢球。在我的球队，我一直给年轻球员信号，这是我严格遵守的规则。”", "　　对于梅西，塞蒂恩表示：“我可以毫不遮掩地说，过去10几年，我非常享受梅西的足球。我一直以来都在电…的关系肯定会很好，我是一个真诚、直接的人，我不喜欢拐弯抹角，哪些方面没做好我就要去解决。”（伊万）"]
// detailImg: (2) ["https://n.sinaimg.cn/kandian/transform/215/w650h365/20200115/f32e-imztzhp1042857.jpg", "https://n.sinaimg.cn/kandian/transform/215/w650h365/20200115/e55f-imztzhp1043930.jpg"]
// img: "https://n.sinaimg.cn/kandian/transform/215/w650h365/20200115/f32e-imztzhp1042857.jpg"
// src: ""

const newsInterface = {
    id: -1,
    detailPag: [],
    detailImg: [],
    img: '',
    src: '',
}

export const news = {

    state: {
        newsList: [],
        catalog: {
            //
            // 1: [{...newsInterface,},],
            // 3: [{...newsInterface,},],
            // 4: [{...newsInterface,},],
            // 5: [{...newsInterface,},],
            // 6: [{...newsInterface,},],
            // 56: [{...newsInterface,},],
        },

        currentNews: {
            ...newsInterface,
        },
    },

    reducers: {

        setNewsList(state, payload) {
            const {newsList,} = payload

            return {
                ...state,
                newsList: [
                    ...state.newsList,
                    ...newsList,
                ],
            }
        },

        setCurrentNewsDetail(state, payload) {
            const currentNews = payload
            return {
                ...state,
                currentNews,
            }
        },

        setInitNewsDetail(state, payload) {
            return {
                ...state,
                currentNews: {
                    ...newsInterface,
                }
            }
        }
    },

    effects: (dispatch) => ({

        async doFetchNewsDetail(payload, rootState) {
            // const resp = await fetchNewsDetailReq(payload)
            const startId = payload.startId
            const endId = startId + 1
            const resp = await fetchNewsListReq({
                startId,
                endId,
            })

            handleResp(resp, dispatch, (data) => {
                if (data.ok) {
                    const currentNews = data.ok.data[0]
                    dispatch.news.setCurrentNewsDetail(currentNews)
                }
            })
        },


        async doFetchNewsList(payload = {startId: 0, endId: 14,}, rootState) {

            const resp = await fetchNewsListReq(payload)
            handleResp(resp, dispatch, (data) => {


                if (data.ok) {
                    // console.log(data.ok)
                    const newsList = data.ok.data
                    const startId = payload.startId
                    const endId = payload.endId
                    for (let i = 0; i < endId - startId; i++) {
                        const l = rootState.news.newsList.length
                        newsList[i].id = i + l
                    }
                    dispatch.news.setNewsList({
                        newsList,
                    })
                }
            })
        },

        doSetNewsDetailInit(payload, rootState) {
            dispatch.news.setInitNewsDetail()
        }

    }),

}
